/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package recanto.das.pedrinhas.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import recanto.das.pedrinhas.bean.Cliente;
import recanto.das.pedrinhas.bean.Endereco;
import recanto.das.pedrinhas.dao.ClienteDao;
import recanto.das.pedrinhas.mesagens.PropertiesLoaderImpl;

/**
 *
 * @author Guilherme
 */
public class ClienteController {
    private ClienteDao clienteDao;
    private Cliente cliente;

    public ClienteController(){
        clienteDao = new ClienteDao();
        cliente = new Cliente();
    }
    
    public String mensagem (String nome, String cpf, String rg, 
            String email , String tel){
        String msg = "";
        if (nome.equals("")) {
            msg = msg + PropertiesLoaderImpl.getValor("faltaNome") +"\n";
        } if(cpf.equals("")){
            msg = msg + PropertiesLoaderImpl.getValor("faltaCpf") +"\n";
        } if(rg.equals("")){
            msg = msg + PropertiesLoaderImpl.getValor("faltaRg") +"\n";
        } if(email.equals("")){
            msg = msg + PropertiesLoaderImpl.getValor("faltaEmail") +"\n";
        } if(tel.equals("")){
            msg = msg + PropertiesLoaderImpl.getValor("faltaTel") +"\n";
        }
        
        return msg;
    }
    
    public void adicionarClienteTitular(String nome, String cpf, String rg, 
            String prof, Date data, String email , String tel){
        
            cliente.setCpf(cpf);
            cliente.setDatanasc(data);
            cliente.setEmail(email);
            cliente.setNome(nome);
            cliente.setProfissao(prof);
            cliente.setRg(rg);
            cliente.setTelefone(tel);
            cliente.setTipo(0);
        
            clienteDao.salvar(cliente);
        
    }
    
    public void adicionarClienteAcompanhante(String nome, String rg, Date dataNasc, String email) {
        cliente.setNome(nome);
        cliente.setRg(rg);
        cliente.setDatanasc(dataNasc);
        cliente.setEmail(email);
        cliente.setTipo(1);
        
        clienteDao.salvarAcompanhante(cliente);
        
    }
    
    public void editarCliente(Cliente cliente, String nome, String cpf, String rg, 
                String prof, Date data, String email , String tel, String rua, String numero, String bairro, String cidade, String estado, String pais){
         
         cliente.setCpf(cpf);
         cliente.setDatanasc(data);
         cliente.setEmail(email);
         cliente.setNome(nome);
         cliente.setProfissao(prof);
         cliente.setRg(rg);
         cliente.setTelefone(tel);
         
         if(cliente.getTipo() == 1 
                && !rua.equals("")
                && !numero.equals("")
                && !bairro.equals("") 
                && !cidade.equals("")
                && !estado.equals("")
                && !pais.equals("")){
            
                cliente.setTipo(0);
                EnderecoController enderecoController = new EnderecoController();
                
                enderecoController.adicionarEndereco(rua, numero, bairro, cidade, estado, pais, cliente);
                //enderecoController.fecharSession();
            
       }
        
        

         clienteDao.alterar(cliente);
    } 
    
    public void alterarCliente (Cliente c, String dependente_id){
        c.setDependenteId(dependente_id);
        clienteDao.alterar(c);
    }

    public boolean isClienteTitular(Cliente cliente, Endereco endereco){
        if(!cliente.getCpf().equals("")&&
           !cliente.getDatanasc().equals("")&&
           !cliente.getEmail().equals("")&&
           !cliente.getNome().equals("")&&
           !cliente.getProfissao().equals("")&&
           !cliente.getRg().equals("")&&
           !cliente.getTelefone().equals("")){
                return true;
        }
        return false;
    }
    
    public Cliente retornaCliente (String cpf){
        cliente = clienteDao.buscaPorCpf(cpf);
        return cliente;
    }
    
    public ArrayList<Cliente> retornaTitulares (){
        ArrayList<Cliente> titulares = new ArrayList();
        ArrayList<Cliente> listaClientes = new ArrayList();
        listaClientes = (ArrayList) clienteDao.carregaClientes();
        for (int i = 0; i < listaClientes.size(); i++) {
            if(listaClientes.get(i).getTipo() == 0){
                titulares.add(listaClientes.get(i));
            }
        }
        return titulares;   
    }
    
    public boolean isAniversariante(Cliente cliente){
        Date hoje = new Date();
        Date dataNasc = cliente.getDatanasc();
        SimpleDateFormat mes = new SimpleDateFormat("MM");
        SimpleDateFormat dia = new SimpleDateFormat("dd");
        return (mes.format(hoje).equals(mes.format(dataNasc)) && dia.format(hoje).equals(dia.format(dataNasc)));
    }
    
       //System.out.println("Month " + mes.format(dataNasc)); 
       //if(hoje.getMonth().equals(dataNasc.getMonth()) && hoje.getDay().equals(dataNasc.getDay())){
       //     return true;
       // }
       // return false;
        
    public Cliente buscaPorId (int idCli){
        return clienteDao.carregaPorId(idCli);
    }
    
    public void fechaSession(){
        clienteDao.fechaSession();
    }
    
    
    
}
